﻿/// <reference path="../../yui-3.14-min.js" />
YUI.add('parcial-list-view', function (Y) {
    Y.ParcialesView = Y.Base.create('ParcialesView', Y.View, [], {
        loadTemplate: function () {
            if (this.template == '') {
                var that = this,
                request = Y.io('/ExcellentProject/scripts/views/calificaciones/parciales/templates/parciales.html', {
                    on: {
                        complete: function (id, response) {
                            that.templateIsCharged = true;
                            that.template = response.responseText;
                            try {
                                $('#tablaParciales').parent().replaceWith('');
                            }
                            catch (err) {
                                console.log(err);
                            }
                            that.render();
                        },
                        failure: function (id, response) {
                            alert(response, 'Error al cargar Parciales')
                        }

                    }
                })
            }
        },
        render: function () {
            this.loadTemplate();
            if (this.templateIsCharged) {
                var idPeriodoActual = this.get('idPeriodo')
                var contentTemplate = Y.Handlebars.compile(this.template);
                this.get('container').setHTML(contentTemplate({ IdPeriodo: idPeriodoActual }));

                debugger
                var list = this.get('modelList');

                var table = $('#tablaParciales').DataTable({
                    "language": {
                        "search": "Buscar:",
                        "lengthMenu": "Items por página: _MENU_",
                        "info": "Items del _START_ al _END_ de _TOTAL_ items.",
                        "emptyTable": "Items no disponibles.",
                        "infoEmpty": "0 ítems.",
                        "paginate": {
                            "next": "Siguiente",
                            "previous": "Anterior",
                            "first": "Primero",
                            "last": "Ultimo"
                        }
                    },
                    "paging": true,
                    retrieve: true,
                    data: list,
                    "rowCallback": function (row, aData) {
                        $('td:eq(0)', row).html('<a title="Editar" class="btn btn-warning" href="/parciales/' + idPeriodoActual + '/' + aData.get('Id') + '">' +
                         '<i class="fa fa-pencil">' + '</i>' + '<span class="tooltip"></span></a>');
                        $('td:eq(6)', row).html('<a title="Eliminar" class="btn btn-danger" href="/parciales/eliminar/' + idPeriodoActual + '/' + aData.get('Id') + '" >' +
                      '<i class="fa fa-trash-o">' + '</i>' + '<span class="tooltip"></span></a>');
                    },
                    columns: [
                        { data: '_state.data.Nombre.lazy.value' },
                        { data: '_state.data.Descripcion.lazy.value' },
                        { data: '_state.data.FechaInicio.lazy.value' },
                        { data: '_state.data.FechaFin.lazy.value' },
                        { data: '_state.data.Estado.lazy.value' },
                        { data: '_state.data.Id.lazy.value' },
                        { data: '_state.data.Id.lazy.value' }
                    ]
                });
                table.draw();
            }
        }
    })
}, '0.0.0.1', {
    requires: ['view', 'parcial-model-list', 'parcial-model', 'io', 'handlebars', 'editar-parcial-view']
})



//YUI.add('parcial-list-view', function (Y) {

//    Y.ParcialesView = Y.Base.create('ParcialesView', Y.View, [], {
//        initializer: function () {

//            var that = this,
//                request = Y.io('/ExcellentProject/scripts/views/calificaciones/parciales/templates/parciales.html', {
//                    on: {
//                        complete: function (id, response) {
//                            //creacion de los modelos
//                            var list = that.get('modelList');
//                            that.get('container').setHTML(response.responseText);

//                            //DataTable
//                            var table = new Y.DataTable({
//                                columns: [
//                                    { label: 'Clave', key: 'Clave' },
//                                    { label: 'Nombre', key: 'Nombre', sortable: true, resizable: true },
//                                    { label: 'Descripcion', key: 'Descripcion' },
//                                    { label: 'FechaInicio', key: 'FechaInicio' },
//                                    { label: 'FechaFin', key: 'FechaFin' },
//                                    { label: 'Estado', key: 'Estado', sortable: true },
//                                    {
//                                        label: ' ', key: 'Id', type: 'link', cellTemplate:
//                                            '<td class="{className}">' +
//                                                '<a class="edit" href="{content}">Editar</a>' +
//                                            '</td>'
//                                    },
//                                    {
//                                        label: ' ', key: 'Id', type: 'link', cellTemplate:
//                                              '<td class="{className}">' +
//                                                  '<a class="remove" href="{content}">Eliminar</a>' +
//                                              '</td>'
//                                    }
//                                ],
//                                data: list,
//                                recordType: Y.Parcial,
//                                location: 'footer',
//                                pageSizes: [5, 10, 'all'],
//                                rowsPerPage: 5,
//                                pageLinks: 5,
//                                editable: false,
//                                width: '100%'
//                            });
//                            table.render('#parcialTabla');
//                        }
//                    }
//                });
//        },
//        events: {
//            '.edit': { click: 'edit' },
//            '#agregar': { click: 'newParcial' },
//            '.remove': { click: 'deletParcial' },
//            //'#masDatos': { click: 'listarParciales' },
//            //'#datosAnteriores': { click: 'datosAnteriores' },
//            '#buscar': { click: 'buscarParcial' },
//            '#clear': { click: 'refrescar' }
//        },
//        render: function () {
//            return this;
//        },

//        edit: function (e) {
//            e.preventDefault();
//            debugger
//            Y.editarView(this, e.target.getAttribute('href'), false);

//        },
//        newParcial: function (e) {
//            e.preventDefault();
//            Y.editarView(this, 0, true);

//        },

//        deleteCatalog: function (e) {
//            e.preventDefault();
//            debugger
//            var data = e.target.getAttribute('href');
//            var list = this.get('modelList');
//            var parcial = list.filter(function (par) {
//                return par.getAttrs(['IdP']).Id == data;
//            });

//            // Re-render this view when a model is added to or removed from the model list.
//            list.after(['add', 'remove', 'reset'], this.render, this);

//            if (confirm('¿Realmente desea eliminar el parcial ?')) {
//                debugger

//                var clone = Y.clone(parcial[0]);

//                parcial[0].lists = [];
//                list.remove(clone);


//                var that = this, n = parcial[0].destroy({ urlName: 'deleteOption', remove: true }, function (err, d) {
//                    debugger
//                    if (err != null) {
//                        debugger
//                        alert('Problemas al eliminar el parcial');
//                    }
//                }), f = this.fire('navigateToView', {
//                    viewName: 'parciales',
//                    modelList: list
//                });
//            }
//        },

//        listarParciales: function (e) {
//            e.preventDefault();
//            var that = this;
//            var pIndex = parseInt(localStorage["Pagina"]) + 1;
//            var pSize = parseInt(localStorage["Tamanio"]);
//            localStorage["Pagina"] = pIndex;
//            Y.one('#datosBusquedapar').set('value', localStorage["seleccioncriterio"]);
//            Y.one('#datosBusqueda').set('value', localStorage["criterio"]);
//            var listaParciales = new Y.Parciales();
//            listaParciales.load({ urlName: 'listPaging', pageIndex: pIndex, pageSize: pSize }, function () {

//                if (listaParciales.size() == 0) {
//                    alert("No Existen más datos")
//                    localStorage["Pagina"] = parseInt(localStorage["Pagina"]) - 1;
//                    return;
//                }
//                that.fire('navigateToView', {
//                    viewName: 'parciales',
//                    modelList: listaParciales
//                });
//            });

//        },

//        datosAnteriores: function (e) {
//            e.preventDefault();
//            var that = this;
//            var pIndex = parseInt(localStorage["Pagina"]) - 1;
//            var pSize = parseInt(localStorage["Tamanio"]);
//            if (pIndex < 0)
//                return;
//            localStorage["Pagina"] = pIndex;
//            var listaParciales = new Y.Parciales();
//            listaParciales.load({ urlName: 'listPaging', pageIndex: pIndex, pageSize: pSize }, function () {
//                that.fire('navigateToView', {
//                    viewName: 'parciales',
//                    modelList: listaParciales
//                });
//            });
//        },

//        buscarParcial: function (e) {
//            e.preventDefault();
//            debugger
//            var listaParciales = this.get('modelList');
//            var seleccioncriterio = Y.one('#datosBusquedapar').get('value');
//            var criterio = Y.one('#datosBusqueda').get('value').trimLeft();
//            var datosEncontrados = listaParciales.filter(function (par) {
//                return par.get(seleccioncriterio).toLowerCase().indexOf(criterio.toLowerCase()) != -1;
//            });
//            localStorage["seleccioncriterio"] = seleccioncriterio;
//            localStorage["criterio"] = criterio;
//            this.fire('navigateToView', {
//                viewName: 'parciales',
//                modelList: datosEncontrados
//            });
//        },
//        refrescar: function (e) {
//            e.preventDefault();
//            debugger
//            var that = this;
//            var listaParciales = new Y.Parciales();
//            localStorage["seleccioncriterio"] = "";
//            localStorage["criterio"] = "";
//            listaParciales.load(function () {
//                that.fire('navigateToView', {
//                    viewName: 'parciales',
//                    modelList: listaParciales
//                });
//            });
//        }
//    })

//}, '0.0.0.1', {
//    requires: ['view', 'parcial-model-list', 'parcial-model', 'io', 'handlebars', 'aui-modal', 'aui-form-validator',
//        'editar-parcial-view', 'aui-datatable', 'datatable-paginator', 'datatable-base']
//})